Variabili Libere e Vincolate
5.4 – Variabili Libere e Vincolate

Variabili libere e vincolate

Ogni volta che una variabile compare in una formula diremo che è un’occorrenza della variabile nella formula. In ogni formula occorrono un numero finito di variabili.

La variabile \(z\) occorre tre volte in \[((\exists x \left ( f(x,y) = c \right )) \to ( (\forall z (R ( z ))) \vee (S ( z )) )) .\] Nelle prime due occorrenze la \(z\) è muta dato che dire \((\forall z (R ( z )))\) ha lo stesso significato di \((\forall u (R ( u )))\), cioè ogni oggetto gode della proprietà \(R\), mentre la terza occorrenza serve per asserire che \(z\) gode della proprietà \(S\).

Le occorrenze del primo tipo si dicono vincolate, quelle del secondo tipo si dicono libere.

La distinzione tra occorrenze libere e vincolate di una variabile è importante perché tali occorrenze verranno trattate in maniera diversa quando parleremo di semantica (ovvero di interpretazione di formule).

Perché distinguere tra variabili libere e vincolate? Consideriamo il linguaggio \(L=\{+,\cdot,0,1\}\) con \(+,\cdot\) simboli di operazione binari e \(0,1\) simboli di costante.

L’equazione \(x^2+2x=0\) può essere espressa in questo linguaggio dalla formula atomica \(\phi(x)\) \[(+( \cdot(x,x), +(x,x))=0).\]

La formula \(\psi\) \[(\exists x\,(+( \cdot(x,x), +(x,x))=0))\] esprime invece l’asserzione

“Esiste \(x\) tale che \(x^2+2x=0\)

ovvero: “L’equazione \(x^2 + 2x = 0\) ammette una soluzione”.

Si osservi che tutte le occorrenze di \(x\) in \(\phi(x)\) sono libere, mentre \(\psi\) è un enunciato (ovvero non ha variabili libere).

Supponiamo ora di interpretare tutti i simboli \(+ , \cdot , 0, 1\) di \(L\) nella maniera usuale, e di voler stabilire se \(\phi(x)\) e \(\psi\) sono vere in \(\mathbb{R}\).

Le variabili libere di una formula sono quelle a cui dobbiamo assegnare un valore per poter stabilire se la formula è vera oppure no in un dato contesto!

Variabili libere e vincolate

Sia \(\phi\) una formula e \(x\) una variabile.

Più brevemente: un’occorrenza di una variabile \(x\) in \(\phi\) è vincolata se segue un quantificatore, oppure cade nel raggio d’azione di un quantificatore del tipo \(\exists x\) o \(\forall x\). In caso contrario, l’occorrenza in questione si dice libera.

Definizione Si dice che \(x\) occorre libera in \(\phi\) (oppure che \(x\) è una variabile libera di \(\phi\)) se c’è almeno un’occorrenza libera di \(x\) in \(\phi\). L’insieme delle variabili libere di \(\phi\) è indicato con \[FV (\phi).\]

Enunciati

La notazione

\(\phi ( x_{1} , \dots , x_{n} )\)

serve per porre in evidenza il fatto che le variabili che occorrono libere in \(\phi\) sono alcune tra le \(x_{1} , \dots , x_{n}\).

Attenzione! Non richiediamo che ogni \(x_{1} , \dots , x_{n}\) compaia libera (o compaia del tutto) in \(\phi\) ed è perfettamente possibile che la formula non contenga alcuna variabile libera, o addirittura nessuna variabile: stiamo solo dicendo che se c’è una variabile che occorre libera in \(\phi\), allora è una tra le \(x_{1}, \dotsc, x_{n}\).

Definizione: Un enunciato o formula chiusa è una formula che non contiene variabili libere, cioè tale che \(FV ( \phi ) = \emptyset\).

Per comodità, quando vogliamo specificare il linguaggio \(L\) in cui l’enunciato è formulato parliamo di \(L\)-enunciato.

Come individuare le variabili libere

Per individuare le (eventuali) occorrenze libere di una variabile \(x\) in una data formula \(\phi\), si può analizzare l’albero sintattico nel seguente modo.

  1. Si calcola l’albero sintattico di \(\phi\).

  2. Se l’occorrenza di \(x\) cui siamo interessati segue un quantificatore, allora tale occorrenza è vincolata.

  3. In caso contrario, si individua l’unico ramo dell’albero sintattico che mostra da dove proviene l’occorrenza in questione (si veda l’esempio seguente).

  4. Se lungo tale ramo viene “applicata” una quantificazione proprio sulla variabile \(x\), allora l’occorrenza di \(x\) in questione è vincolata (in quanto cade nel raggio d’azione di quel quantificatore).

  5. Se invece lungo tutto il ramo non si quantifica mai su \(x\), allora l’occorrenza di \(x\) in questione è libera.

Consideriamoesempio_par la formula \[((\exists x (\forall y \left ( (P ( x , y )) \to (Q ( x )) \right ) ) )\to ((\forall z (R ( z ))) \vee (S ( z ))))\] Il suo albero sintattico è

L’albero sintattico di \[((\exists x (\forall y ( (P ( x , y )) \to (Q ( x )) ) ) )\to ((\forall z (R ( z ))) \vee (S ( z ))))\] è

Osservazioni:

Esercizio

Sia \(L = \{ P, Q, f, a, c \}\) un linguaggio del prim’ordine dove \(P\) è un simbolo di predicato binario, \(Q\) è un simbolo di predicato unario, \(f\) è un simbolo di funzione unario e \(a , c\) sono simboli di costante. Per ciascuna occorrenza di variabile nelle seguenti formule, dire se si tratta di un’occorrenza libera o vincolata. Per ciascuna formula, elencare le sue variabili libere e dire se si tratta di un enunciato oppure no.

Convenzioni sulle parentesi

Parentesi e priorità

Per facilitare la lettura di una formula è possibile omettere alcune parentesi non necessarie utilizzando opportune convenzioni.

Attenzione! Come osservato in alcuni degli esempi precedenti, non tutte le parentesi si possono eliminare da una formula (senza alterarne il significato).

Si possono eliminare parentesi fin tanto che il significato dell’espressione risultante resta univocamente determinato ed identico a quello della formula originale (ovvero alla versione formale con tutte le parentesi). Questo vuol dire che, utilizzando le convenzioni date, si devono poter reintrodurre le parentesi senza ambiguità, fino a ricostruire la formula originale.

Esercizio

Reintrodurre le parentesi nelle seguenti formule, dove \(P\) è un simbolo di relazione unario, \(R\) è un simbolo di relazione binario, \(f\) è un sibolo di funzione binario, \(g\) è un simbolo di funzione unario e \(a,b,c\) sono simboli di costante.

Il seguente criterio permette di individuare la costante logica principale di una formula da cui siano state omesse alcune parentesi seguendo le convenzioni stabilite.

La costante logica principale di una formula è sempre quella di priorità più bassa tra quelle non contenute in alcuna coppia di parentesi; se ve n’è più di una con queste caratteristiche, la costante logica principale è quella più a sinistra tra di esse.

Esempio 1

Nelle seguenti formule (in cui sono state omesse alcune parentesi), la costante logica principale è quella indicata a fianco:

Esempio 2

Avendo un modo per individuare il connettivo principale anche in assenza di (alcune) parentesi, possiamo costruire l’albero sintattico senza dover prima reintrodurre tutte le parentesi mancanti.

L’albero sintattico di \(\exists x (\forall y R(x,y) \wedge \neg(x=y)) \vee \forall z \neg P(z)\) è il seguente:

Esercizi di ricapitolazione

Di ciascuna delle formule seguenti (in cui sono state omesse alcune parentesi), determinare l’albero sintattico e l’altezza.

Di ogni occorrenza di variabile nelle formule precedenti, dire se si tratta di occorrenza libera o vincolata. Elencare le variabili libere di ciascuna formula e dire se si tratta di un enunciato oppure no.